package com.zerosoft.shuguang.dao;

import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.Data;
import org.springframework.integration.support.json.JsonObjectMapper;

@Data
public class GuotaiEventParse {
    public static final int TYPE_PART = 0x01;   //器件类
    public static final int TYPE_LOOP = 0x02;   //回路类
    public static final int TYPE_TRAY = 0x03;   //盘类
    public static final int TYPE_MACHINE = 0x04;    //CPU相关类
    public static final int TYPE_COM_MON = 0x05;    //通信及监视类
    public static final int TYPE_NONEXIST_POS = 0x06;  //发生部位无效，不存在的部位。   无效位置

    public static final int FIRE_EVENT = 0x10;  //火警事件
    public static final int FIRE_RESTORE_EVENT = 0x13;  //火警恢复事件
    public static final int MONITOR_ALARM_EVENT = 0x14; //监管报警事件
    public static final int MONITOR_ALARM_CANCEL_EVENT = 0x16;  //监管报警取消事件
    public static final int START_EVENT = 0x15;    //启动事件.启动,停止,回答,回答撤销都属于联动事件
    public static final int STOP_EVENT = 0x18;  //停止事件
    public static final int ANSWER_EVENT = 0x1a;    //回答事件
    public static final int ANSWER_CANCEL_EVENT = 0x1d;  //回答撤销事件
    public static final int DISABLE_EVENT = 0x1e;  //屏蔽事件
    public static final int DISABLE_OPEN_EVENT = 0x1f;  //屏蔽开放
    public static final int FAULT_EVENT  = 0x20;  //故障事件
    public static final int FAULT_RESTORE_EVENT= 0x23;  //故障恢复事件
    public static final int OTHER_EVENT  = 0x25;   //其他事件
    public static final int NONEXIST_EVENT  = 0xff;    //不存在的事件

    public int deviceType;  // 器件类型(器件类/回路类/盘类/其他类...)
    public int eventType;   // 事件类型(火警/启动/回答/故障...)
    public String date;     // 长度8，例： 07-01-31
    public String time;     // 长度8，例：08:09:10
    public String build;    // 长度14，楼号层号区号 如：01楼001层001区
    public String machine;  // 长度4，例：01机
    public String eventNumber;  // 长度14，001号  1-001号盘1路  01回路001号 例：1-001盘001分机
    public String panelTypeName;    // 长度12，盘名称 ，没有信息用空格填充
    public String road;     // 长度7，灭控盘操作盘等路号/区号(其他类为空格) 例：1区 001(总线电话)
    public String partTypeName; //长度12，器件类型名称，没有信息用空格填充
    public String description;     //长度24，事件描述(12个汉字空间)，没有信息用空格填充
    public String position;     //长度16，地理位置，没有信息用空格填充

    public String parseJson() {
        ObjectMapper mapper = new ObjectMapper();
        try {
            return mapper.writeValueAsString(this);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }
}
